This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.
library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
library(Seurat)
Loading required package: SeuratObject
Loading required package: sp
‘SeuratObject’ was built under R 4.2.0 but the current version is 4.2.2; it is recomended that you
reinstall ‘SeuratObject’ as the ABI for R may have changed
Attaching package: ‘SeuratObject’
The following object is masked from ‘package:base’:
intersect
Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
library(patchwork)
# Load the PBMC dataset
pbmc.data <- Read10X(data.dir = "/Users/surangijayasinghe/filtered_gene_bc_matrices 2/hg19/")
# Initialize the Seurat object with the raw (non-normalized data).
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)
Warning: Feature names cannot have underscores ('_'), replacing with dashes ('-')
pbmc
An object of class Seurat
13714 features across 2700 samples within 1 assay
Active assay: RNA (13714 features, 0 variable features)
1 layer present: counts
The number of unique genes detected in each cell. Low-quality cells or empty droplets will often have very few genes Cell doublets or multiplets may exhibit an aberrantly high gene count Similarly, the total number of molecules detected within a cell (correlates strongly with unique genes) The percentage of reads that map to the mitochondrial genome Low-quality / dying cells often exhibit extensive mitochondrial contamination We calculate mitochondrial QC metrics with the PercentageFeatureSet() function, which calculates the percentage of counts originating from a set of features We use the set of all genes starting with MT- as a set of mitochondrial genes
# The [[ operator can add columns to object metadata. This is a great place to stash QC stats
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
In the example below, we visualize QC metrics, and use these to filter cells.
We filter cells that have unique feature counts over 2,500 or less than 200 We filter cells that have >5% mitochondrial counts
# Visualize QC metrics as a violin plot
VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
Warning: Default search for "data" layer in "RNA" assay yielded no results; utilizing "counts" layer instead.
# FeatureScatter is typically used to visualize feature-feature relationships, but can be used
# for anything calculated by the object, i.e. columns in object metadata, PC scores etc.
plot1 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot1 + plot2
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
#Next Normalize the data! After After removing unwanted cells from the dataset, the next step is to normalize the data. #Global-scaling normalization method “LogNormalize” that normalizes the feature expression measurements for each cell by the total expression, multiplies this by a scale factor (10,000 by default), and log-transforms the result. In Seurat v5, Normalized values are stored in pbmc[[“RNA”]]$data.
pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000)
Normalizing layer: counts
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
#provideds the default values for parameters in the function call.However may not be needed, and can just use the function below
pbmc <- NormalizeData(pbmc)
Normalizing layer: counts
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Identification of highly variable features (feature selection) Next calculate a subset of features that exhibit high cell-to-cell variation in the dataset (i.e, they are highly expressed in some cells, and lowly expressed in others). genes in downstream analysis helps to highlight biological signal in single-cell datasets. #models the mean -variabce relationship in single cell data
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)
Finding variable features for layer counts
Calculating gene variances
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
# Identify the 10 most highly variable genes
top10 <- head(VariableFeatures(pbmc), 10)
# plot variable features with and without labels
plot1 <- VariableFeaturePlot(pbmc)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
When using repel, set xnudge and ynudge to 0 for optimal results
plot1 + plot2
#Scaling the data #Next, we apply a linear transformation (‘scaling’) that is a standard pre-processing step prior to dimensional reduction techniques like PCA. The ScaleData() function:
#Shifts the expression of each gene, so that the mean expression across cells is 0 #Scales the expression of each gene, so that the variance across cells is 1 #This step gives equal weight in downstream analyses, so that highly-expressed genes do not dominate #The results of this are stored in pbmc[[“RNA”]]$scale.data #By default, only variable features are scaled. #You can specify the features argument to scale additional features
all.genes <- rownames(pbmc)
pbmc <- ScaleData(pbmc, features = all.genes)
Centering and scaling data matrix
|
| | 0%
|
|======= | 7%
|
|=============== | 14%
|
|====================== | 21%
|
|============================= | 29%
|
|==================================== | 36%
|
|============================================ | 43%
|
|=================================================== | 50%
|
|========================================================== | 57%
|
|================================================================== | 64%
|
|========================================================================= | 71%
|
|================================================================================ | 79%
|
|======================================================================================= | 86%
|
|=============================================================================================== | 93%
|
|======================================================================================================| 100%
#Perform linear dimensional reduction #Next we perform PCA on the scaled data. By default, only the previously determined variable features are used as input, but can be defined using features argument if you wish to choose a different subset (if you do want to use a custom subset of features, make sure you pass these to ScaleData first).
#For the first principal components, Seurat outputs a list of genes with the most positive and negative loadings, representing modules of genes that exhibit either correlation (or anti-correlation) across single-cells in the dataset.
pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc))
PC_ 1
Positive: CST3, TYROBP, LST1, AIF1, FTL, FTH1, LYZ, FCN1, S100A9, TYMP
FCER1G, CFD, LGALS1, S100A8, CTSS, LGALS2, SERPINA1, IFITM3, SPI1, CFP
PSAP, IFI30, SAT1, COTL1, S100A11, NPC2, GRN, LGALS3, GSTP1, PYCARD
Negative: MALAT1, LTB, IL32, IL7R, CD2, B2M, ACAP1, CD27, STK17A, CTSW
CD247, GIMAP5, AQP3, CCL5, SELL, TRAF3IP3, GZMA, MAL, CST7, ITM2A
MYC, GIMAP7, HOPX, BEX2, LDLRAP1, GZMK, ETS1, ZAP70, TNFAIP8, RIC3
PC_ 2
Positive: CD79A, MS4A1, TCL1A, HLA-DQA1, HLA-DQB1, HLA-DRA, LINC00926, CD79B, HLA-DRB1, CD74
HLA-DMA, HLA-DPB1, HLA-DQA2, CD37, HLA-DRB5, HLA-DMB, HLA-DPA1, FCRLA, HVCN1, LTB
BLNK, P2RX5, IGLL5, IRF8, SWAP70, ARHGAP24, FCGR2B, SMIM14, PPP1R14A, C16orf74
Negative: NKG7, PRF1, CST7, GZMB, GZMA, FGFBP2, CTSW, GNLY, B2M, SPON2
CCL4, GZMH, FCGR3A, CCL5, CD247, XCL2, CLIC3, AKR1C3, SRGN, HOPX
TTC38, APMAP, CTSC, S100A4, IGFBP7, ANXA1, ID2, IL32, XCL1, RHOC
PC_ 3
Positive: HLA-DQA1, CD79A, CD79B, HLA-DQB1, HLA-DPB1, HLA-DPA1, CD74, MS4A1, HLA-DRB1, HLA-DRA
HLA-DRB5, HLA-DQA2, TCL1A, LINC00926, HLA-DMB, HLA-DMA, CD37, HVCN1, FCRLA, IRF8
PLAC8, BLNK, MALAT1, SMIM14, PLD4, LAT2, IGLL5, P2RX5, SWAP70, FCGR2B
Negative: PPBP, PF4, SDPR, SPARC, GNG11, NRGN, GP9, RGS18, TUBB1, CLU
HIST1H2AC, AP001189.4, ITGA2B, CD9, TMEM40, PTCRA, CA2, ACRBP, MMD, TREML1
NGFRAP1, F13A1, SEPT5, RUFY1, TSC22D1, MPP1, CMTM5, RP11-367G6.3, MYL9, GP1BA
PC_ 4
Positive: HLA-DQA1, CD79B, CD79A, MS4A1, HLA-DQB1, CD74, HLA-DPB1, HIST1H2AC, PF4, TCL1A
SDPR, HLA-DPA1, HLA-DRB1, HLA-DQA2, HLA-DRA, PPBP, LINC00926, GNG11, HLA-DRB5, SPARC
GP9, AP001189.4, CA2, PTCRA, CD9, NRGN, RGS18, GZMB, CLU, TUBB1
Negative: VIM, IL7R, S100A6, IL32, S100A8, S100A4, GIMAP7, S100A10, S100A9, MAL
AQP3, CD2, CD14, FYB, LGALS2, GIMAP4, ANXA1, CD27, FCN1, RBP7
LYZ, S100A11, GIMAP5, MS4A6A, S100A12, FOLR3, TRABD2A, AIF1, IL8, IFI6
PC_ 5
Positive: GZMB, NKG7, S100A8, FGFBP2, GNLY, CCL4, CST7, PRF1, GZMA, SPON2
GZMH, S100A9, LGALS2, CCL3, CTSW, XCL2, CD14, CLIC3, S100A12, CCL5
RBP7, MS4A6A, GSTP1, FOLR3, IGFBP7, TYROBP, TTC38, AKR1C3, XCL1, HOPX
Negative: LTB, IL7R, CKB, VIM, MS4A7, AQP3, CYTIP, RP11-290F20.3, SIGLEC10, HMOX1
PTGES3, LILRB2, MAL, CD27, HN1, CD2, GDI2, ANXA5, CORO1B, TUBA1B
FAM110A, ATP1A1, TRADD, PPA1, CCDC109B, ABRACL, CTD-2006K23.1, WARS, VMO1, FYB
#Seurat provides several useful ways of visualizing both cells and features that define the PCA, including VizDimReduction(), DimPlot(), and DimHeatmap()
# Examine and visualize PCA results a few different ways
print(pbmc[["pca"]], dims = 1:5, nfeatures = 5)
PC_ 1
Positive: CST3, TYROBP, LST1, AIF1, FTL
Negative: MALAT1, LTB, IL32, IL7R, CD2
PC_ 2
Positive: CD79A, MS4A1, TCL1A, HLA-DQA1, HLA-DQB1
Negative: NKG7, PRF1, CST7, GZMB, GZMA
PC_ 3
Positive: HLA-DQA1, CD79A, CD79B, HLA-DQB1, HLA-DPB1
Negative: PPBP, PF4, SDPR, SPARC, GNG11
PC_ 4
Positive: HLA-DQA1, CD79B, CD79A, MS4A1, HLA-DQB1
Negative: VIM, IL7R, S100A6, IL32, S100A8
PC_ 5
Positive: GZMB, NKG7, S100A8, FGFBP2, GNLY
Negative: LTB, IL7R, CKB, VIM, MS4A7
#will generate a visualization that helps interpret the contribution of different genes to the variation captured by the first two principal components in the scRNA-seq dataset stored in pbmc. This visualization can be helpful for understanding the underlying structure and sources of variation in the dataset.
VizDimLoadings(pbmc, dims = 1:2, reduction = "pca")
DimPlot(pbmc, reduction = "pca") + NoLegend()
DimHeatmap(pbmc, dims = 1, cells = 500, balanced = TRUE)
DimHeatmap(pbmc, dims = 1:15, cells = 500, balanced = TRUE)
#Determine the ‘dimensionality’ of the dataset #To overcome the extensive technical noise in any single feature for scRNA-seq data, Seurat clusters cells based on their PCA scores, with each PC essentially representing a ‘metafeature’ that combines information across a correlated feature set. #An alternative heuristic method generates an ‘Elbow plot’: a ranking of principle components based on the percentage of variance explained by each one (ElbowPlot() function). In this example, we can observe an ‘elbow’ around PC9-10, suggesting that the majority of true signal is captured in the first 10 PCs.
ElbowPlot(pbmc)
#Cluster the cells #FindClusters() function implements this procedure, and contains a resolution parameter that sets the ‘granularity’ of the downstream clustering, with increased values leading to a greater number of clusters. We find that setting this parameter between 0.4-1.2 typically returns good results for single-cell datasets of around 3K cells. Optimal resolution often increases for larger datasets. The clusters can be found using the Idents() function.
pbmc <- FindNeighbors(pbmc, dims = 1:10)
Computing nearest neighbor graph
Computing SNN
pbmc <- FindClusters(pbmc, resolution = 0.5)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
Number of nodes: 2638
Number of edges: 95965
Running Louvain algorithm...
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8723
Number of communities: 9
Elapsed time: 0 seconds
# Look at cluster IDs of the first 5 cells
head(Idents(pbmc), 5)
AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1 AAACCGTGCTTCCG-1 AAACCGTGTATGCG-1
2 3 2 1 6
Levels: 0 1 2 3 4 5 6 7 8
Run non-linear dimensional reduction (UMAP/tSNE) Seurat offers several non-linear dimensional reduction techniques, such as tSNE and UMAP, to visualize and explore these datasets. We encourage users to leverage techniques like UMAP for visualization, but to avoid drawing biological conclusions solely on the basis of visualization techniques.
pbmc <- RunUMAP(pbmc, dims = 1:10)
Warning: The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
This message will be shown once per session18:04:51 UMAP embedding parameters a = 0.9922 b = 1.112
18:04:51 Read 2638 rows and found 10 numeric columns
18:04:51 Using Annoy for neighbor search, n_neighbors = 30
18:04:51 Building Annoy index with metric = cosine, n_trees = 50
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:04:51 Writing NN index file to temp file /var/folders/x6/ycv8mzcn0_j6bcs5vckhptk80000gn/T//RtmpfniD7X/file3801e52ded2
18:04:51 Searching Annoy index using 1 thread, search_k = 3000
18:04:52 Annoy recall = 100%
18:04:52 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 30
18:04:53 Initializing from normalized Laplacian + noise (using RSpectra)
18:04:53 Commencing optimization for 500 epochs, with 105124 positive edges
Using method 'umap'
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
18:04:57 Optimization finished
# note that you can set `label = TRUE` or use the LabelClusters function to help label
# individual clusters
DimPlot(pbmc, reduction = "umap")
#Finding differentially expressed features (cluster biomarkers) #FindAllMarkers() automates this process for all clusters, but you can also test groups of clusters vs. each other, or against all cells.
# find all markers of cluster 2
cluster2.markers <- FindMarkers(pbmc, ident.1 = 2)
head(cluster2.markers, n = 5)
# find all markers of cluster 2
cluster2.markers <- FindMarkers(pbmc, ident.1 = 2)
For a (much!) faster implementation of the Wilcoxon Rank Sum Test,
(default method for FindMarkers) please install the presto package
--------------------------------------------
install.packages('devtools')
devtools::install_github('immunogenomics/presto')
--------------------------------------------
After installation of presto, Seurat will automatically use the more
efficient implementation (no further action necessary).
This message will be shown once per session
| | 0 % ~calculating
|+ | 1 % ~01m 03s
|+ | 2 % ~01m 02s
|++ | 3 % ~01m 03s
|++ | 4 % ~01m 04s
|+++ | 5 % ~01m 02s
|+++ | 6 % ~01m 02s
|++++ | 7 % ~01m 01s
|++++ | 8 % ~01m 00s
|+++++ | 9 % ~01m 00s
|+++++ | 10% ~01m 00s
|++++++ | 11% ~60s
|++++++ | 12% ~58s
|+++++++ | 13% ~58s
|+++++++ | 14% ~57s
|++++++++ | 15% ~57s
|++++++++ | 16% ~56s
|+++++++++ | 17% ~55s
|+++++++++ | 18% ~54s
|++++++++++ | 19% ~53s
|++++++++++ | 20% ~52s
|+++++++++++ | 21% ~51s
|+++++++++++ | 22% ~51s
|++++++++++++ | 23% ~50s
|++++++++++++ | 24% ~49s
|+++++++++++++ | 25% ~49s
|+++++++++++++ | 26% ~48s
|++++++++++++++ | 27% ~47s
|++++++++++++++ | 28% ~47s
|+++++++++++++++ | 29% ~46s
|+++++++++++++++ | 30% ~45s
|++++++++++++++++ | 31% ~45s
|++++++++++++++++ | 32% ~44s
|+++++++++++++++++ | 33% ~43s
|+++++++++++++++++ | 34% ~43s
|++++++++++++++++++ | 35% ~42s
|++++++++++++++++++ | 36% ~41s
|+++++++++++++++++++ | 37% ~41s
|+++++++++++++++++++ | 38% ~40s
|++++++++++++++++++++ | 39% ~39s
|++++++++++++++++++++ | 40% ~39s
|+++++++++++++++++++++ | 41% ~38s
|+++++++++++++++++++++ | 42% ~37s
|++++++++++++++++++++++ | 43% ~37s
|++++++++++++++++++++++ | 44% ~36s
|+++++++++++++++++++++++ | 45% ~35s
|+++++++++++++++++++++++ | 46% ~35s
|++++++++++++++++++++++++ | 47% ~34s
|++++++++++++++++++++++++ | 48% ~33s
|+++++++++++++++++++++++++ | 49% ~33s
|+++++++++++++++++++++++++ | 50% ~32s
|++++++++++++++++++++++++++ | 51% ~31s
|++++++++++++++++++++++++++ | 52% ~31s
|+++++++++++++++++++++++++++ | 53% ~30s
|+++++++++++++++++++++++++++ | 54% ~29s
|++++++++++++++++++++++++++++ | 55% ~29s
|++++++++++++++++++++++++++++ | 56% ~28s
|+++++++++++++++++++++++++++++ | 57% ~28s
|+++++++++++++++++++++++++++++ | 58% ~27s
|++++++++++++++++++++++++++++++ | 59% ~26s
|++++++++++++++++++++++++++++++ | 60% ~26s
|+++++++++++++++++++++++++++++++ | 61% ~25s
|+++++++++++++++++++++++++++++++ | 62% ~24s
|++++++++++++++++++++++++++++++++ | 63% ~24s
|++++++++++++++++++++++++++++++++ | 64% ~23s
|+++++++++++++++++++++++++++++++++ | 65% ~22s
|+++++++++++++++++++++++++++++++++ | 66% ~22s
|++++++++++++++++++++++++++++++++++ | 67% ~21s
|++++++++++++++++++++++++++++++++++ | 68% ~20s
|+++++++++++++++++++++++++++++++++++ | 69% ~20s
|+++++++++++++++++++++++++++++++++++ | 70% ~19s
|++++++++++++++++++++++++++++++++++++ | 71% ~18s
|++++++++++++++++++++++++++++++++++++ | 72% ~18s
|+++++++++++++++++++++++++++++++++++++ | 73% ~17s
|+++++++++++++++++++++++++++++++++++++ | 74% ~16s
|++++++++++++++++++++++++++++++++++++++ | 75% ~16s
|++++++++++++++++++++++++++++++++++++++ | 76% ~15s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~15s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~14s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~13s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~13s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~12s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~11s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~11s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~10s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~09s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~09s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~08s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~08s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~07s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~06s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~06s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 03s
head(cluster2.markers, n = 5)
# find all markers distinguishing cluster 5 from clusters 0 and 3
cluster5.markers <- FindMarkers(pbmc, ident.1 = 5, ident.2 = c(0, 3))
| | 0 % ~calculating
|+ | 1 % ~39s
|+ | 2 % ~41s
|++ | 3 % ~40s
|++ | 4 % ~39s
|+++ | 5 % ~40s
|+++ | 6 % ~41s
|++++ | 7 % ~41s
|++++ | 8 % ~40s
|+++++ | 9 % ~39s
|+++++ | 10% ~38s
|++++++ | 11% ~37s
|++++++ | 12% ~36s
|+++++++ | 13% ~36s
|+++++++ | 14% ~36s
|++++++++ | 15% ~35s
|++++++++ | 16% ~35s
|+++++++++ | 17% ~35s
|+++++++++ | 18% ~34s
|++++++++++ | 19% ~34s
|++++++++++ | 20% ~33s
|+++++++++++ | 21% ~33s
|+++++++++++ | 22% ~32s
|++++++++++++ | 23% ~31s
|++++++++++++ | 24% ~31s
|+++++++++++++ | 25% ~31s
|+++++++++++++ | 26% ~30s
|++++++++++++++ | 27% ~30s
|++++++++++++++ | 28% ~29s
|+++++++++++++++ | 29% ~29s
|+++++++++++++++ | 30% ~29s
|++++++++++++++++ | 31% ~28s
|++++++++++++++++ | 32% ~28s
|+++++++++++++++++ | 33% ~27s
|+++++++++++++++++ | 34% ~27s
|++++++++++++++++++ | 35% ~27s
|++++++++++++++++++ | 36% ~26s
|+++++++++++++++++++ | 37% ~26s
|+++++++++++++++++++ | 38% ~25s
|++++++++++++++++++++ | 39% ~25s
|++++++++++++++++++++ | 40% ~24s
|+++++++++++++++++++++ | 41% ~24s
|+++++++++++++++++++++ | 42% ~23s
|++++++++++++++++++++++ | 43% ~23s
|++++++++++++++++++++++ | 44% ~22s
|+++++++++++++++++++++++ | 45% ~22s
|+++++++++++++++++++++++ | 46% ~22s
|++++++++++++++++++++++++ | 47% ~21s
|++++++++++++++++++++++++ | 48% ~21s
|+++++++++++++++++++++++++ | 49% ~20s
|+++++++++++++++++++++++++ | 50% ~20s
|++++++++++++++++++++++++++ | 51% ~20s
|++++++++++++++++++++++++++ | 52% ~19s
|+++++++++++++++++++++++++++ | 53% ~19s
|+++++++++++++++++++++++++++ | 54% ~18s
|++++++++++++++++++++++++++++ | 55% ~18s
|++++++++++++++++++++++++++++ | 56% ~18s
|+++++++++++++++++++++++++++++ | 57% ~17s
|+++++++++++++++++++++++++++++ | 58% ~17s
|++++++++++++++++++++++++++++++ | 59% ~17s
|++++++++++++++++++++++++++++++ | 60% ~16s
|+++++++++++++++++++++++++++++++ | 61% ~16s
|+++++++++++++++++++++++++++++++ | 62% ~15s
|++++++++++++++++++++++++++++++++ | 63% ~15s
|++++++++++++++++++++++++++++++++ | 64% ~14s
|+++++++++++++++++++++++++++++++++ | 65% ~14s
|+++++++++++++++++++++++++++++++++ | 66% ~14s
|++++++++++++++++++++++++++++++++++ | 67% ~13s
|++++++++++++++++++++++++++++++++++ | 68% ~13s
|+++++++++++++++++++++++++++++++++++ | 69% ~13s
|+++++++++++++++++++++++++++++++++++ | 70% ~12s
|++++++++++++++++++++++++++++++++++++ | 71% ~12s
|++++++++++++++++++++++++++++++++++++ | 72% ~11s
|+++++++++++++++++++++++++++++++++++++ | 73% ~11s
|+++++++++++++++++++++++++++++++++++++ | 74% ~11s
|++++++++++++++++++++++++++++++++++++++ | 75% ~10s
|++++++++++++++++++++++++++++++++++++++ | 76% ~10s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~09s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~09s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~08s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~08s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~07s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~06s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~06s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~05s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=41s
head(cluster5.markers, n = 5)
# find markers for every cluster compared to all remaining cells, report only the positive
# ones
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE)
Calculating cluster 0
| | 0 % ~calculating
|+ | 1 % ~22s
|+ | 2 % ~19s
|++ | 3 % ~20s
|++ | 4 % ~19s
|+++ | 5 % ~18s
|+++ | 6 % ~18s
|++++ | 7 % ~17s
|++++ | 8 % ~17s
|+++++ | 9 % ~17s
|+++++ | 10% ~16s
|++++++ | 11% ~16s
|++++++ | 12% ~16s
|+++++++ | 13% ~15s
|+++++++ | 14% ~15s
|++++++++ | 15% ~15s
|++++++++ | 16% ~15s
|+++++++++ | 17% ~14s
|+++++++++ | 18% ~14s
|++++++++++ | 19% ~14s
|++++++++++ | 20% ~14s
|+++++++++++ | 21% ~14s
|+++++++++++ | 22% ~13s
|++++++++++++ | 23% ~13s
|++++++++++++ | 24% ~13s
|+++++++++++++ | 25% ~13s
|+++++++++++++ | 26% ~13s
|++++++++++++++ | 27% ~12s
|++++++++++++++ | 28% ~12s
|+++++++++++++++ | 29% ~12s
|+++++++++++++++ | 30% ~12s
|++++++++++++++++ | 31% ~12s
|++++++++++++++++ | 32% ~11s
|+++++++++++++++++ | 33% ~11s
|+++++++++++++++++ | 34% ~11s
|++++++++++++++++++ | 35% ~11s
|++++++++++++++++++ | 36% ~11s
|+++++++++++++++++++ | 37% ~11s
|+++++++++++++++++++ | 38% ~10s
|++++++++++++++++++++ | 39% ~10s
|++++++++++++++++++++ | 40% ~10s
|+++++++++++++++++++++ | 41% ~10s
|+++++++++++++++++++++ | 42% ~10s
|++++++++++++++++++++++ | 43% ~10s
|++++++++++++++++++++++ | 44% ~09s
|+++++++++++++++++++++++ | 45% ~09s
|+++++++++++++++++++++++ | 46% ~09s
|++++++++++++++++++++++++ | 47% ~09s
|++++++++++++++++++++++++ | 48% ~09s
|+++++++++++++++++++++++++ | 49% ~08s
|+++++++++++++++++++++++++ | 50% ~08s
|++++++++++++++++++++++++++ | 51% ~08s
|++++++++++++++++++++++++++ | 52% ~08s
|+++++++++++++++++++++++++++ | 53% ~08s
|+++++++++++++++++++++++++++ | 54% ~08s
|++++++++++++++++++++++++++++ | 55% ~08s
|++++++++++++++++++++++++++++ | 56% ~07s
|+++++++++++++++++++++++++++++ | 57% ~07s
|+++++++++++++++++++++++++++++ | 58% ~07s
|++++++++++++++++++++++++++++++ | 59% ~07s
|++++++++++++++++++++++++++++++ | 60% ~07s
|+++++++++++++++++++++++++++++++ | 61% ~07s
|+++++++++++++++++++++++++++++++ | 62% ~06s
|++++++++++++++++++++++++++++++++ | 63% ~06s
|++++++++++++++++++++++++++++++++ | 64% ~06s
|+++++++++++++++++++++++++++++++++ | 65% ~06s
|+++++++++++++++++++++++++++++++++ | 66% ~06s
|++++++++++++++++++++++++++++++++++ | 67% ~06s
|++++++++++++++++++++++++++++++++++ | 68% ~05s
|+++++++++++++++++++++++++++++++++++ | 69% ~05s
|+++++++++++++++++++++++++++++++++++ | 70% ~05s
|++++++++++++++++++++++++++++++++++++ | 71% ~05s
|++++++++++++++++++++++++++++++++++++ | 72% ~05s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|+++++++++++++++++++++++++++++++++++++ | 74% ~04s
|++++++++++++++++++++++++++++++++++++++ | 75% ~04s
|++++++++++++++++++++++++++++++++++++++ | 76% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=17s
Calculating cluster 1
| | 0 % ~calculating
|+ | 1 % ~18s
|++ | 2 % ~17s
|++ | 3 % ~17s
|+++ | 4 % ~17s
|+++ | 5 % ~17s
|++++ | 6 % ~16s
|++++ | 7 % ~16s
|+++++ | 8 % ~16s
|+++++ | 9 % ~16s
|++++++ | 10% ~16s
|++++++ | 11% ~16s
|+++++++ | 12% ~15s
|+++++++ | 13% ~15s
|++++++++ | 14% ~16s
|++++++++ | 15% ~15s
|+++++++++ | 16% ~15s
|+++++++++ | 17% ~15s
|++++++++++ | 18% ~15s
|++++++++++ | 19% ~14s
|+++++++++++ | 20% ~14s
|+++++++++++ | 21% ~14s
|++++++++++++ | 22% ~14s
|++++++++++++ | 23% ~14s
|+++++++++++++ | 24% ~13s
|+++++++++++++ | 25% ~13s
|++++++++++++++ | 26% ~13s
|++++++++++++++ | 27% ~13s
|+++++++++++++++ | 28% ~13s
|+++++++++++++++ | 29% ~13s
|++++++++++++++++ | 30% ~12s
|++++++++++++++++ | 31% ~12s
|+++++++++++++++++ | 32% ~12s
|+++++++++++++++++ | 33% ~12s
|++++++++++++++++++ | 34% ~12s
|++++++++++++++++++ | 35% ~12s
|+++++++++++++++++++ | 36% ~11s
|+++++++++++++++++++ | 37% ~11s
|++++++++++++++++++++ | 38% ~11s
|++++++++++++++++++++ | 39% ~11s
|+++++++++++++++++++++ | 40% ~11s
|+++++++++++++++++++++ | 41% ~10s
|++++++++++++++++++++++ | 42% ~10s
|++++++++++++++++++++++ | 43% ~10s
|+++++++++++++++++++++++ | 44% ~10s
|+++++++++++++++++++++++ | 45% ~10s
|++++++++++++++++++++++++ | 46% ~10s
|++++++++++++++++++++++++ | 47% ~09s
|+++++++++++++++++++++++++ | 48% ~09s
|+++++++++++++++++++++++++ | 49% ~09s
|++++++++++++++++++++++++++ | 51% ~09s
|++++++++++++++++++++++++++ | 52% ~09s
|+++++++++++++++++++++++++++ | 53% ~08s
|+++++++++++++++++++++++++++ | 54% ~08s
|++++++++++++++++++++++++++++ | 55% ~08s
|++++++++++++++++++++++++++++ | 56% ~08s
|+++++++++++++++++++++++++++++ | 57% ~08s
|+++++++++++++++++++++++++++++ | 58% ~08s
|++++++++++++++++++++++++++++++ | 59% ~07s
|++++++++++++++++++++++++++++++ | 60% ~07s
|+++++++++++++++++++++++++++++++ | 61% ~07s
|+++++++++++++++++++++++++++++++ | 62% ~07s
|++++++++++++++++++++++++++++++++ | 63% ~07s
|++++++++++++++++++++++++++++++++ | 64% ~06s
|+++++++++++++++++++++++++++++++++ | 65% ~06s
|+++++++++++++++++++++++++++++++++ | 66% ~06s
|++++++++++++++++++++++++++++++++++ | 67% ~06s
|++++++++++++++++++++++++++++++++++ | 68% ~06s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|+++++++++++++++++++++++++++++++++++ | 70% ~05s
|++++++++++++++++++++++++++++++++++++ | 71% ~05s
|++++++++++++++++++++++++++++++++++++ | 72% ~05s
|+++++++++++++++++++++++++++++++++++++ | 73% ~05s
|+++++++++++++++++++++++++++++++++++++ | 74% ~05s
|++++++++++++++++++++++++++++++++++++++ | 75% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~04s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=18s
Calculating cluster 2
| | 0 % ~calculating
|+ | 1 % ~23s
|++ | 2 % ~27s
|++ | 3 % ~25s
|+++ | 4 % ~24s
|+++ | 5 % ~24s
|++++ | 6 % ~23s
|++++ | 7 % ~23s
|+++++ | 8 % ~22s
|+++++ | 9 % ~22s
|++++++ | 10% ~22s
|++++++ | 11% ~22s
|+++++++ | 12% ~21s
|+++++++ | 13% ~21s
|++++++++ | 14% ~21s
|++++++++ | 15% ~21s
|+++++++++ | 16% ~21s
|+++++++++ | 17% ~20s
|++++++++++ | 18% ~20s
|++++++++++ | 19% ~20s
|+++++++++++ | 20% ~19s
|+++++++++++ | 21% ~19s
|++++++++++++ | 22% ~19s
|++++++++++++ | 23% ~18s
|+++++++++++++ | 24% ~18s
|+++++++++++++ | 25% ~18s
|++++++++++++++ | 26% ~18s
|++++++++++++++ | 27% ~17s
|+++++++++++++++ | 28% ~17s
|+++++++++++++++ | 29% ~17s
|++++++++++++++++ | 30% ~17s
|++++++++++++++++ | 31% ~16s
|+++++++++++++++++ | 32% ~16s
|+++++++++++++++++ | 33% ~16s
|++++++++++++++++++ | 34% ~16s
|++++++++++++++++++ | 35% ~15s
|+++++++++++++++++++ | 36% ~15s
|+++++++++++++++++++ | 37% ~15s
|++++++++++++++++++++ | 38% ~15s
|++++++++++++++++++++ | 39% ~15s
|+++++++++++++++++++++ | 40% ~14s
|+++++++++++++++++++++ | 41% ~14s
|++++++++++++++++++++++ | 42% ~14s
|++++++++++++++++++++++ | 43% ~14s
|+++++++++++++++++++++++ | 44% ~13s
|+++++++++++++++++++++++ | 45% ~13s
|++++++++++++++++++++++++ | 46% ~13s
|++++++++++++++++++++++++ | 47% ~13s
|+++++++++++++++++++++++++ | 48% ~12s
|+++++++++++++++++++++++++ | 49% ~12s
|++++++++++++++++++++++++++ | 51% ~12s
|++++++++++++++++++++++++++ | 52% ~12s
|+++++++++++++++++++++++++++ | 53% ~11s
|+++++++++++++++++++++++++++ | 54% ~11s
|++++++++++++++++++++++++++++ | 55% ~11s
|++++++++++++++++++++++++++++ | 56% ~11s
|+++++++++++++++++++++++++++++ | 57% ~10s
|+++++++++++++++++++++++++++++ | 58% ~10s
|++++++++++++++++++++++++++++++ | 59% ~10s
|++++++++++++++++++++++++++++++ | 60% ~10s
|+++++++++++++++++++++++++++++++ | 61% ~09s
|+++++++++++++++++++++++++++++++ | 62% ~09s
|++++++++++++++++++++++++++++++++ | 63% ~09s
|++++++++++++++++++++++++++++++++ | 64% ~09s
|+++++++++++++++++++++++++++++++++ | 65% ~08s
|+++++++++++++++++++++++++++++++++ | 66% ~08s
|++++++++++++++++++++++++++++++++++ | 67% ~08s
|++++++++++++++++++++++++++++++++++ | 68% ~08s
|+++++++++++++++++++++++++++++++++++ | 69% ~07s
|+++++++++++++++++++++++++++++++++++ | 70% ~07s
|++++++++++++++++++++++++++++++++++++ | 71% ~07s
|++++++++++++++++++++++++++++++++++++ | 72% ~07s
|+++++++++++++++++++++++++++++++++++++ | 73% ~06s
|+++++++++++++++++++++++++++++++++++++ | 74% ~06s
|++++++++++++++++++++++++++++++++++++++ | 75% ~06s
|++++++++++++++++++++++++++++++++++++++ | 76% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=23s
Calculating cluster 3
| | 0 % ~calculating
|+ | 1 % ~19s
|++ | 2 % ~19s
|++ | 3 % ~19s
|+++ | 4 % ~19s
|+++ | 5 % ~19s
|++++ | 6 % ~19s
|++++ | 7 % ~19s
|+++++ | 8 % ~18s
|+++++ | 9 % ~18s
|++++++ | 10% ~18s
|++++++ | 11% ~18s
|+++++++ | 12% ~17s
|+++++++ | 13% ~18s
|++++++++ | 14% ~17s
|++++++++ | 15% ~17s
|+++++++++ | 16% ~17s
|+++++++++ | 17% ~17s
|++++++++++ | 18% ~16s
|++++++++++ | 19% ~16s
|+++++++++++ | 20% ~16s
|+++++++++++ | 21% ~16s
|++++++++++++ | 22% ~15s
|++++++++++++ | 23% ~15s
|+++++++++++++ | 24% ~15s
|+++++++++++++ | 25% ~15s
|++++++++++++++ | 26% ~15s
|++++++++++++++ | 27% ~15s
|+++++++++++++++ | 28% ~14s
|+++++++++++++++ | 29% ~14s
|++++++++++++++++ | 30% ~14s
|++++++++++++++++ | 31% ~14s
|+++++++++++++++++ | 32% ~14s
|+++++++++++++++++ | 33% ~13s
|++++++++++++++++++ | 34% ~13s
|++++++++++++++++++ | 35% ~13s
|+++++++++++++++++++ | 36% ~13s
|+++++++++++++++++++ | 37% ~13s
|++++++++++++++++++++ | 38% ~12s
|++++++++++++++++++++ | 39% ~12s
|+++++++++++++++++++++ | 40% ~12s
|+++++++++++++++++++++ | 41% ~12s
|++++++++++++++++++++++ | 42% ~12s
|++++++++++++++++++++++ | 43% ~12s
|+++++++++++++++++++++++ | 44% ~11s
|+++++++++++++++++++++++ | 45% ~11s
|++++++++++++++++++++++++ | 46% ~11s
|++++++++++++++++++++++++ | 47% ~11s
|+++++++++++++++++++++++++ | 48% ~10s
|+++++++++++++++++++++++++ | 49% ~10s
|++++++++++++++++++++++++++ | 51% ~10s
|++++++++++++++++++++++++++ | 52% ~10s
|+++++++++++++++++++++++++++ | 53% ~10s
|+++++++++++++++++++++++++++ | 54% ~10s
|++++++++++++++++++++++++++++ | 55% ~09s
|++++++++++++++++++++++++++++ | 56% ~09s
|+++++++++++++++++++++++++++++ | 57% ~09s
|+++++++++++++++++++++++++++++ | 58% ~09s
|++++++++++++++++++++++++++++++ | 59% ~09s
|++++++++++++++++++++++++++++++ | 60% ~08s
|+++++++++++++++++++++++++++++++ | 61% ~08s
|+++++++++++++++++++++++++++++++ | 62% ~08s
|++++++++++++++++++++++++++++++++ | 63% ~08s
|++++++++++++++++++++++++++++++++ | 64% ~07s
|+++++++++++++++++++++++++++++++++ | 65% ~07s
|+++++++++++++++++++++++++++++++++ | 66% ~07s
|++++++++++++++++++++++++++++++++++ | 67% ~07s
|++++++++++++++++++++++++++++++++++ | 68% ~07s
|+++++++++++++++++++++++++++++++++++ | 69% ~06s
|+++++++++++++++++++++++++++++++++++ | 70% ~06s
|++++++++++++++++++++++++++++++++++++ | 71% ~06s
|++++++++++++++++++++++++++++++++++++ | 72% ~06s
|+++++++++++++++++++++++++++++++++++++ | 73% ~06s
|+++++++++++++++++++++++++++++++++++++ | 74% ~05s
|++++++++++++++++++++++++++++++++++++++ | 75% ~05s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~04s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=21s
Calculating cluster 4
| | 0 % ~calculating
|+ | 1 % ~28s
|+ | 2 % ~28s
|++ | 3 % ~28s
|++ | 4 % ~30s
|+++ | 5 % ~29s
|+++ | 6 % ~28s
|++++ | 7 % ~28s
|++++ | 8 % ~27s
|+++++ | 9 % ~26s
|+++++ | 10% ~26s
|++++++ | 11% ~26s
|++++++ | 12% ~26s
|+++++++ | 13% ~25s
|+++++++ | 14% ~25s
|++++++++ | 15% ~25s
|++++++++ | 16% ~24s
|+++++++++ | 17% ~24s
|+++++++++ | 18% ~24s
|++++++++++ | 19% ~23s
|++++++++++ | 20% ~23s
|+++++++++++ | 21% ~22s
|+++++++++++ | 22% ~22s
|++++++++++++ | 23% ~22s
|++++++++++++ | 24% ~22s
|+++++++++++++ | 25% ~21s
|+++++++++++++ | 26% ~21s
|++++++++++++++ | 27% ~21s
|++++++++++++++ | 28% ~20s
|+++++++++++++++ | 29% ~20s
|+++++++++++++++ | 30% ~20s
|++++++++++++++++ | 31% ~19s
|++++++++++++++++ | 32% ~19s
|+++++++++++++++++ | 33% ~19s
|+++++++++++++++++ | 34% ~19s
|++++++++++++++++++ | 35% ~18s
|++++++++++++++++++ | 36% ~18s
|+++++++++++++++++++ | 37% ~18s
|+++++++++++++++++++ | 38% ~17s
|++++++++++++++++++++ | 39% ~17s
|++++++++++++++++++++ | 40% ~17s
|+++++++++++++++++++++ | 41% ~17s
|+++++++++++++++++++++ | 42% ~16s
|++++++++++++++++++++++ | 43% ~16s
|++++++++++++++++++++++ | 44% ~16s
|+++++++++++++++++++++++ | 45% ~15s
|+++++++++++++++++++++++ | 46% ~15s
|++++++++++++++++++++++++ | 47% ~15s
|++++++++++++++++++++++++ | 48% ~14s
|+++++++++++++++++++++++++ | 49% ~14s
|+++++++++++++++++++++++++ | 50% ~14s
|++++++++++++++++++++++++++ | 51% ~13s
|++++++++++++++++++++++++++ | 52% ~13s
|+++++++++++++++++++++++++++ | 53% ~13s
|+++++++++++++++++++++++++++ | 54% ~13s
|++++++++++++++++++++++++++++ | 55% ~12s
|++++++++++++++++++++++++++++ | 56% ~12s
|+++++++++++++++++++++++++++++ | 57% ~12s
|+++++++++++++++++++++++++++++ | 58% ~12s
|++++++++++++++++++++++++++++++ | 59% ~11s
|++++++++++++++++++++++++++++++ | 60% ~11s
|+++++++++++++++++++++++++++++++ | 61% ~11s
|+++++++++++++++++++++++++++++++ | 62% ~10s
|++++++++++++++++++++++++++++++++ | 63% ~10s
|++++++++++++++++++++++++++++++++ | 64% ~10s
|+++++++++++++++++++++++++++++++++ | 65% ~10s
|+++++++++++++++++++++++++++++++++ | 66% ~09s
|++++++++++++++++++++++++++++++++++ | 67% ~09s
|++++++++++++++++++++++++++++++++++ | 68% ~09s
|+++++++++++++++++++++++++++++++++++ | 69% ~08s
|+++++++++++++++++++++++++++++++++++ | 70% ~08s
|++++++++++++++++++++++++++++++++++++ | 71% ~08s
|++++++++++++++++++++++++++++++++++++ | 72% ~08s
|+++++++++++++++++++++++++++++++++++++ | 73% ~07s
|+++++++++++++++++++++++++++++++++++++ | 74% ~07s
|++++++++++++++++++++++++++++++++++++++ | 75% ~07s
|++++++++++++++++++++++++++++++++++++++ | 76% ~07s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=27s
Calculating cluster 5
| | 0 % ~calculating
|+ | 1 % ~23s
|+ | 2 % ~22s
|++ | 3 % ~22s
|++ | 4 % ~21s
|+++ | 5 % ~21s
|+++ | 6 % ~22s
|++++ | 7 % ~22s
|++++ | 8 % ~21s
|+++++ | 9 % ~21s
|+++++ | 10% ~21s
|++++++ | 11% ~20s
|++++++ | 12% ~20s
|+++++++ | 13% ~20s
|+++++++ | 14% ~20s
|++++++++ | 15% ~20s
|++++++++ | 16% ~19s
|+++++++++ | 17% ~19s
|+++++++++ | 18% ~19s
|++++++++++ | 19% ~19s
|++++++++++ | 20% ~19s
|+++++++++++ | 21% ~18s
|+++++++++++ | 22% ~18s
|++++++++++++ | 23% ~18s
|++++++++++++ | 24% ~17s
|+++++++++++++ | 25% ~17s
|+++++++++++++ | 26% ~17s
|++++++++++++++ | 27% ~16s
|++++++++++++++ | 28% ~16s
|+++++++++++++++ | 29% ~16s
|+++++++++++++++ | 30% ~16s
|++++++++++++++++ | 31% ~16s
|++++++++++++++++ | 32% ~15s
|+++++++++++++++++ | 33% ~15s
|+++++++++++++++++ | 34% ~15s
|++++++++++++++++++ | 35% ~14s
|++++++++++++++++++ | 36% ~14s
|+++++++++++++++++++ | 37% ~14s
|+++++++++++++++++++ | 38% ~14s
|++++++++++++++++++++ | 39% ~14s
|++++++++++++++++++++ | 40% ~13s
|+++++++++++++++++++++ | 41% ~13s
|+++++++++++++++++++++ | 42% ~13s
|++++++++++++++++++++++ | 43% ~13s
|++++++++++++++++++++++ | 44% ~13s
|+++++++++++++++++++++++ | 45% ~12s
|+++++++++++++++++++++++ | 46% ~12s
|++++++++++++++++++++++++ | 47% ~12s
|++++++++++++++++++++++++ | 48% ~12s
|+++++++++++++++++++++++++ | 49% ~12s
|+++++++++++++++++++++++++ | 50% ~11s
|++++++++++++++++++++++++++ | 51% ~11s
|++++++++++++++++++++++++++ | 52% ~11s
|+++++++++++++++++++++++++++ | 53% ~11s
|+++++++++++++++++++++++++++ | 54% ~10s
|++++++++++++++++++++++++++++ | 55% ~10s
|++++++++++++++++++++++++++++ | 56% ~10s
|+++++++++++++++++++++++++++++ | 57% ~10s
|+++++++++++++++++++++++++++++ | 58% ~10s
|++++++++++++++++++++++++++++++ | 59% ~09s
|++++++++++++++++++++++++++++++ | 60% ~09s
|+++++++++++++++++++++++++++++++ | 61% ~09s
|+++++++++++++++++++++++++++++++ | 62% ~09s
|++++++++++++++++++++++++++++++++ | 63% ~08s
|++++++++++++++++++++++++++++++++ | 64% ~08s
|+++++++++++++++++++++++++++++++++ | 65% ~08s
|+++++++++++++++++++++++++++++++++ | 66% ~08s
|++++++++++++++++++++++++++++++++++ | 67% ~08s
|++++++++++++++++++++++++++++++++++ | 68% ~07s
|+++++++++++++++++++++++++++++++++++ | 69% ~07s
|+++++++++++++++++++++++++++++++++++ | 70% ~07s
|++++++++++++++++++++++++++++++++++++ | 71% ~07s
|++++++++++++++++++++++++++++++++++++ | 72% ~06s
|+++++++++++++++++++++++++++++++++++++ | 73% ~06s
|+++++++++++++++++++++++++++++++++++++ | 74% ~06s
|++++++++++++++++++++++++++++++++++++++ | 75% ~06s
|++++++++++++++++++++++++++++++++++++++ | 76% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~05s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~05s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~04s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~04s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~03s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~03s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=23s
Calculating cluster 6
| | 0 % ~calculating
|+ | 1 % ~41s
|+ | 2 % ~37s
|++ | 3 % ~36s
|++ | 4 % ~35s
|+++ | 5 % ~34s
|+++ | 6 % ~33s
|++++ | 7 % ~33s
|++++ | 8 % ~32s
|+++++ | 9 % ~32s
|+++++ | 10% ~32s
|++++++ | 11% ~31s
|++++++ | 12% ~31s
|+++++++ | 13% ~31s
|+++++++ | 14% ~31s
|++++++++ | 15% ~30s
|++++++++ | 16% ~30s
|+++++++++ | 17% ~29s
|+++++++++ | 18% ~29s
|++++++++++ | 19% ~28s
|++++++++++ | 20% ~28s
|+++++++++++ | 21% ~28s
|+++++++++++ | 22% ~27s
|++++++++++++ | 23% ~27s
|++++++++++++ | 24% ~26s
|+++++++++++++ | 25% ~26s
|+++++++++++++ | 26% ~25s
|++++++++++++++ | 27% ~25s
|++++++++++++++ | 28% ~25s
|+++++++++++++++ | 29% ~24s
|+++++++++++++++ | 30% ~24s
|++++++++++++++++ | 31% ~23s
|++++++++++++++++ | 32% ~23s
|+++++++++++++++++ | 33% ~23s
|+++++++++++++++++ | 34% ~22s
|++++++++++++++++++ | 35% ~22s
|++++++++++++++++++ | 36% ~21s
|+++++++++++++++++++ | 37% ~21s
|+++++++++++++++++++ | 38% ~21s
|++++++++++++++++++++ | 39% ~20s
|++++++++++++++++++++ | 40% ~20s
|+++++++++++++++++++++ | 41% ~20s
|+++++++++++++++++++++ | 42% ~19s
|++++++++++++++++++++++ | 43% ~19s
|++++++++++++++++++++++ | 44% ~19s
|+++++++++++++++++++++++ | 45% ~18s
|+++++++++++++++++++++++ | 46% ~18s
|++++++++++++++++++++++++ | 47% ~18s
|++++++++++++++++++++++++ | 48% ~17s
|+++++++++++++++++++++++++ | 49% ~17s
|+++++++++++++++++++++++++ | 50% ~16s
|++++++++++++++++++++++++++ | 51% ~16s
|++++++++++++++++++++++++++ | 52% ~16s
|+++++++++++++++++++++++++++ | 53% ~15s
|+++++++++++++++++++++++++++ | 54% ~15s
|++++++++++++++++++++++++++++ | 55% ~15s
|++++++++++++++++++++++++++++ | 56% ~14s
|+++++++++++++++++++++++++++++ | 57% ~14s
|+++++++++++++++++++++++++++++ | 58% ~14s
|++++++++++++++++++++++++++++++ | 59% ~13s
|++++++++++++++++++++++++++++++ | 60% ~13s
|+++++++++++++++++++++++++++++++ | 61% ~13s
|+++++++++++++++++++++++++++++++ | 62% ~12s
|++++++++++++++++++++++++++++++++ | 63% ~12s
|++++++++++++++++++++++++++++++++ | 64% ~12s
|+++++++++++++++++++++++++++++++++ | 65% ~11s
|+++++++++++++++++++++++++++++++++ | 66% ~11s
|++++++++++++++++++++++++++++++++++ | 67% ~11s
|++++++++++++++++++++++++++++++++++ | 68% ~10s
|+++++++++++++++++++++++++++++++++++ | 69% ~10s
|+++++++++++++++++++++++++++++++++++ | 70% ~10s
|++++++++++++++++++++++++++++++++++++ | 71% ~09s
|++++++++++++++++++++++++++++++++++++ | 72% ~09s
|+++++++++++++++++++++++++++++++++++++ | 73% ~09s
|+++++++++++++++++++++++++++++++++++++ | 74% ~08s
|++++++++++++++++++++++++++++++++++++++ | 75% ~08s
|++++++++++++++++++++++++++++++++++++++ | 76% ~08s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~07s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~07s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~06s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~05s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~05s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~04s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=32s
Calculating cluster 7
| | 0 % ~calculating
|+ | 1 % ~27s
|+ | 2 % ~28s
|++ | 3 % ~28s
|++ | 4 % ~27s
|+++ | 5 % ~27s
|+++ | 6 % ~26s
|++++ | 7 % ~26s
|++++ | 8 % ~27s
|+++++ | 9 % ~26s
|+++++ | 10% ~26s
|++++++ | 11% ~25s
|++++++ | 12% ~25s
|+++++++ | 13% ~25s
|+++++++ | 14% ~24s
|++++++++ | 15% ~24s
|++++++++ | 16% ~24s
|+++++++++ | 17% ~24s
|+++++++++ | 18% ~24s
|++++++++++ | 19% ~23s
|++++++++++ | 20% ~23s
|+++++++++++ | 21% ~23s
|+++++++++++ | 22% ~22s
|++++++++++++ | 23% ~22s
|++++++++++++ | 24% ~22s
|+++++++++++++ | 25% ~22s
|+++++++++++++ | 26% ~21s
|++++++++++++++ | 27% ~21s
|++++++++++++++ | 28% ~21s
|+++++++++++++++ | 29% ~20s
|+++++++++++++++ | 30% ~20s
|++++++++++++++++ | 31% ~20s
|++++++++++++++++ | 32% ~20s
|+++++++++++++++++ | 33% ~19s
|+++++++++++++++++ | 34% ~19s
|++++++++++++++++++ | 35% ~19s
|++++++++++++++++++ | 36% ~18s
|+++++++++++++++++++ | 37% ~18s
|+++++++++++++++++++ | 38% ~18s
|++++++++++++++++++++ | 39% ~17s
|++++++++++++++++++++ | 40% ~17s
|+++++++++++++++++++++ | 41% ~17s
|+++++++++++++++++++++ | 42% ~17s
|++++++++++++++++++++++ | 43% ~16s
|++++++++++++++++++++++ | 44% ~16s
|+++++++++++++++++++++++ | 45% ~16s
|+++++++++++++++++++++++ | 46% ~15s
|++++++++++++++++++++++++ | 47% ~15s
|++++++++++++++++++++++++ | 48% ~15s
|+++++++++++++++++++++++++ | 49% ~14s
|+++++++++++++++++++++++++ | 50% ~14s
|++++++++++++++++++++++++++ | 51% ~14s
|++++++++++++++++++++++++++ | 52% ~14s
|+++++++++++++++++++++++++++ | 53% ~13s
|+++++++++++++++++++++++++++ | 54% ~13s
|++++++++++++++++++++++++++++ | 55% ~13s
|++++++++++++++++++++++++++++ | 56% ~12s
|+++++++++++++++++++++++++++++ | 57% ~12s
|+++++++++++++++++++++++++++++ | 58% ~12s
|++++++++++++++++++++++++++++++ | 59% ~11s
|++++++++++++++++++++++++++++++ | 60% ~11s
|+++++++++++++++++++++++++++++++ | 61% ~11s
|+++++++++++++++++++++++++++++++ | 62% ~11s
|++++++++++++++++++++++++++++++++ | 63% ~10s
|++++++++++++++++++++++++++++++++ | 64% ~10s
|+++++++++++++++++++++++++++++++++ | 65% ~10s
|+++++++++++++++++++++++++++++++++ | 66% ~09s
|++++++++++++++++++++++++++++++++++ | 67% ~09s
|++++++++++++++++++++++++++++++++++ | 68% ~09s
|+++++++++++++++++++++++++++++++++++ | 69% ~09s
|+++++++++++++++++++++++++++++++++++ | 70% ~08s
|++++++++++++++++++++++++++++++++++++ | 71% ~08s
|++++++++++++++++++++++++++++++++++++ | 72% ~08s
|+++++++++++++++++++++++++++++++++++++ | 73% ~07s
|+++++++++++++++++++++++++++++++++++++ | 74% ~07s
|++++++++++++++++++++++++++++++++++++++ | 75% ~07s
|++++++++++++++++++++++++++++++++++++++ | 76% ~07s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~06s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~06s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~06s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~05s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~05s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~04s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~04s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~03s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~03s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=27s
Calculating cluster 8
| | 0 % ~calculating
|+ | 1 % ~13s
|+ | 2 % ~13s
|++ | 3 % ~13s
|++ | 4 % ~14s
|+++ | 5 % ~14s
|+++ | 6 % ~14s
|++++ | 7 % ~14s
|++++ | 8 % ~14s
|+++++ | 9 % ~14s
|+++++ | 10% ~14s
|++++++ | 11% ~14s
|++++++ | 12% ~14s
|+++++++ | 13% ~13s
|+++++++ | 14% ~13s
|++++++++ | 15% ~13s
|++++++++ | 16% ~13s
|+++++++++ | 17% ~13s
|+++++++++ | 18% ~13s
|++++++++++ | 19% ~13s
|++++++++++ | 20% ~12s
|+++++++++++ | 21% ~12s
|+++++++++++ | 22% ~12s
|++++++++++++ | 23% ~12s
|++++++++++++ | 24% ~12s
|+++++++++++++ | 25% ~11s
|+++++++++++++ | 26% ~11s
|++++++++++++++ | 27% ~11s
|++++++++++++++ | 28% ~11s
|+++++++++++++++ | 29% ~11s
|+++++++++++++++ | 30% ~10s
|++++++++++++++++ | 31% ~10s
|++++++++++++++++ | 32% ~10s
|+++++++++++++++++ | 33% ~10s
|+++++++++++++++++ | 34% ~10s
|++++++++++++++++++ | 35% ~10s
|++++++++++++++++++ | 36% ~09s
|+++++++++++++++++++ | 37% ~09s
|+++++++++++++++++++ | 38% ~09s
|++++++++++++++++++++ | 39% ~09s
|++++++++++++++++++++ | 40% ~09s
|+++++++++++++++++++++ | 41% ~09s
|+++++++++++++++++++++ | 42% ~08s
|++++++++++++++++++++++ | 43% ~08s
|++++++++++++++++++++++ | 44% ~08s
|+++++++++++++++++++++++ | 45% ~08s
|+++++++++++++++++++++++ | 46% ~08s
|++++++++++++++++++++++++ | 47% ~08s
|++++++++++++++++++++++++ | 48% ~07s
|+++++++++++++++++++++++++ | 49% ~07s
|+++++++++++++++++++++++++ | 50% ~07s
|++++++++++++++++++++++++++ | 51% ~07s
|++++++++++++++++++++++++++ | 52% ~07s
|+++++++++++++++++++++++++++ | 53% ~07s
|+++++++++++++++++++++++++++ | 54% ~07s
|++++++++++++++++++++++++++++ | 55% ~06s
|++++++++++++++++++++++++++++ | 56% ~06s
|+++++++++++++++++++++++++++++ | 57% ~06s
|+++++++++++++++++++++++++++++ | 58% ~06s
|++++++++++++++++++++++++++++++ | 59% ~06s
|++++++++++++++++++++++++++++++ | 60% ~06s
|+++++++++++++++++++++++++++++++ | 61% ~06s
|+++++++++++++++++++++++++++++++ | 62% ~05s
|++++++++++++++++++++++++++++++++ | 63% ~05s
|++++++++++++++++++++++++++++++++ | 64% ~05s
|+++++++++++++++++++++++++++++++++ | 65% ~05s
|+++++++++++++++++++++++++++++++++ | 66% ~05s
|++++++++++++++++++++++++++++++++++ | 67% ~05s
|++++++++++++++++++++++++++++++++++ | 68% ~05s
|+++++++++++++++++++++++++++++++++++ | 69% ~04s
|+++++++++++++++++++++++++++++++++++ | 70% ~04s
|++++++++++++++++++++++++++++++++++++ | 71% ~04s
|++++++++++++++++++++++++++++++++++++ | 72% ~04s
|+++++++++++++++++++++++++++++++++++++ | 73% ~04s
|+++++++++++++++++++++++++++++++++++++ | 74% ~04s
|++++++++++++++++++++++++++++++++++++++ | 75% ~04s
|++++++++++++++++++++++++++++++++++++++ | 76% ~03s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~03s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~03s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~03s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~03s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~03s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~02s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~02s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~02s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~02s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~01s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~01s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=14s
pbmc.markers %>%
group_by(cluster) %>%
dplyr::filter(avg_log2FC > 1)
#whats the difference between the two? #VlnPlot is used for examining the distribution of gene expression values across cells, while FeaturePlot is used to visualize the expression patterns of specific genes within the context of cell clusters or dimensionality reduction plots.
cluster0.markers <- FindMarkers(pbmc, ident.1 = 0, logfc.threshold = 0.25, test.use = "roc", only.pos = TRUE)
| | 0 % ~calculating
|+ | 1 % ~04s
|++ | 2 % ~04s
|++ | 3 % ~04s
|+++ | 4 % ~04s
|+++ | 5 % ~04s
|++++ | 6 % ~04s
|++++ | 7 % ~04s
|+++++ | 8 % ~04s
|+++++ | 9 % ~04s
|++++++ | 10% ~04s
|++++++ | 11% ~04s
|+++++++ | 12% ~04s
|+++++++ | 13% ~04s
|++++++++ | 14% ~04s
|++++++++ | 15% ~04s
|+++++++++ | 16% ~04s
|+++++++++ | 17% ~04s
|++++++++++ | 18% ~04s
|++++++++++ | 19% ~04s
|+++++++++++ | 20% ~03s
|+++++++++++ | 21% ~03s
|++++++++++++ | 22% ~03s
|++++++++++++ | 23% ~03s
|+++++++++++++ | 24% ~03s
|+++++++++++++ | 26% ~03s
|++++++++++++++ | 27% ~03s
|++++++++++++++ | 28% ~03s
|+++++++++++++++ | 29% ~03s
|+++++++++++++++ | 30% ~03s
|++++++++++++++++ | 31% ~03s
|++++++++++++++++ | 32% ~03s
|+++++++++++++++++ | 33% ~03s
|+++++++++++++++++ | 34% ~03s
|++++++++++++++++++ | 35% ~03s
#violin plots will show the distribution of expression levels for the specified features, providing insights into their expression patterns across cells in the dataset.
# you can plot raw counts as well
VlnPlot(pbmc, features = c("NKG7", "PF4"), slot = "counts", log = TRUE)
#creates a feature plot - shows distribution of gene expression
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP",
"CD8A"))
#DoHeatmap() generates an expression heatmap for given cells and features. In this case, we are plotting the top 20 markers (or all markers if less than 20) for each cluster.
pbmc.markers %>%
group_by(cluster) %>%
dplyr::filter(avg_log2FC > 1) %>%
slice_head(n = 10) %>%
ungroup() -> top10
DoHeatmap(pbmc, features = top10$gene) + NoLegend()
#Assigning cell type identity to clusters Fortunately in the case of this dataset, we can use canonical markers to easily match the unbiased clustering to known cell types: Cluster ID Markers Cell Type 0 IL7R, CCR7 Naive CD4+ T 1 CD14, LYZ CD14+ Mono 2 IL7R, S100A4 Memory CD4+ 3 MS4A1 B 4 CD8A CD8+ T 5 FCGR3A, MS4A7 FCGR3A+ Mono 6 GNLY, NKG7 NK 7 FCER1A, CST3 DC 8 PPBP Platelet
new.cluster.ids <- c("Naive CD4 T", "CD14+ Mono", "Memory CD4 T", "B", "CD8 T", "FCGR3A+ Mono",
"NK", "DC", "Platelet")
names(new.cluster.ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc, new.cluster.ids)
DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()
library(ggplot2)
plot <- DimPlot(pbmc, reduction = "umap", label = TRUE, label.size = 4.5) + xlab("UMAP 1") + ylab("UMAP 2") +
theme(axis.title = element_text(size = 18), legend.text = element_text(size = 18)) + guides(colour = guide_legend(override.aes = list(size = 10)))
ggsave(filename = "../output/images/pbmc3k_umap.jpg", height = 7, width = 12, plot = plot, quality = 50)